package com.cartaodeponto.data;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class BD {
	
	private SQLiteDatabase bd;
	
	public BD(Context context){
		BDCore auxBd = new BDCore(context);
		bd = auxBd.getWritableDatabase();
	}
	
	
	public void inserir(HorasApontadas horasApontadas){
		ContentValues valores = new ContentValues();
		valores.put("entradaManha",  new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
		
		if(horasApontadas.getSaidaManha()!= null)
			valores.put("saidaManha", horasApontadas.getSaidaManha().toString());
		
		if(horasApontadas.getEntradaTarde()!= null)
			valores.put("entradaTarde", horasApontadas.getEntradaTarde().toString());
		
		if(horasApontadas.getSaidaTarde()!= null)
			valores.put("saidaTarde", horasApontadas.getSaidaTarde().toString());
		
		bd.insert("horasApontadas", null, valores);
	}
	
	
	public void atualizar(HorasApontadas horasApontadas){
		ContentValues valores = new ContentValues();
		valores.put("entradaManha", horasApontadas.getEntradaManha().toString());
		valores.put("saidaManha", horasApontadas.getSaidaManha().toString());
		valores.put("entradaTarde", horasApontadas.getEntradaTarde().toString());
		valores.put("saidaTarde", horasApontadas.getSaidaTarde().toString());
		
		bd.update("horasApontadas", valores, "id = ?", new String[]{""+horasApontadas.getId()});
	}
	
	
	public void deletar(HorasApontadas horasApontadas){
		bd.delete("horasApontadas", "id = "+horasApontadas.getId(), null);
	}
	
	public List<HorasApontadas> buscar() throws ParseException{
		List<HorasApontadas> list = new ArrayList<HorasApontadas>();
		
		String[] colunas = new String[]{"id", "entradaManha"};
		String whereClause = "date(entradaManha) between date(?) and date(?)";
		String[] whereArgs = new String[]{"2014-12-01", "2014-12-05",};
		
		Cursor cursor = bd.query("horasApontadas", colunas, whereClause, whereArgs, null, null, "id DESC");
		
		if(cursor.getCount() > 0){
			
			cursor.moveToFirst();
			
			do {
				
				HorasApontadas u = new HorasApontadas();
				u.setId(cursor.getLong(0));
				
				SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
				
				String yo = cursor.getString(1);
				
				Date d= formatter.parse(yo);
			
				u.setEntradaManha( new SimpleDateFormat("dd/MM/yyyy").format(d));
				list.add(u);
				
			}while(cursor.moveToNext());
		}
		
		return(list);
	}
}